const express = require("express")  // 导入express模块
const app = express()   // 创建express实例
const path = require("path")    // 导入path模块
const article = require('./models/article')
const url = require('url')
const qs = require('querystring')
const everyPageShowArticleNums = 5
app.use(express.static(path.resolve("./public")))

// 设置端口
const port = 3000;
// 设置监听的 IP 地址，这里设置为 127.0.0.1
const ip = '127.0.0.1';

//发送首页文件
app.get('/', (req, res) => {
    res.sendFile(path.resolve('./public/home.html'))
})
//发送最新的一篇文章  根据时间进行倒叙排序，发送第0项目(对象)
app.get('/getArticle', (req, res) => {
    article.find({}).sort({ time: -1 }).then((data) => {
        res.send(data[0])
    })
})
//发送分页的内容  接口获取前端发送的page字段 根据page字段来发送不同的页面的内容
app.get('/getNewArticleList', (req, res) => {
    var { page } = qs.parse(url.parse(req.url).query)
    article.find({}).sort({ time: -1 }).skip((page - 1) * 5).limit(everyPageShowArticleNums).then((data) => {
        res.send(data)
    })
})
//获取总共有多少分页的页面
app.get('/ArticleNums', (req, res) => {
    article.find({}).then((data) => {
        var num = Math.ceil(data.length / everyPageShowArticleNums);
        res.send(num.toString())
    })
})
//获取热度最高的5篇文章
app.get('/getHotArticleList', (req, res) => {
    article.find({}).sort({ count: -1 }).limit(everyPageShowArticleNums).then((data) => {
        res.send(data)
    })
})

//获取文章页面
app.get('/getPage', (req, res) => {
    res.sendFile(path.resolve('./public/page.html'))
})

//根据文章id，发送文章内容
app.get('/getOneArticleById', (req, res) => {
    var { id } = qs.parse(url.parse(req.url).query)
    article.find({ _id: id }).then((data) => {
        res.send(data[0])
    })
})

app.listen(port, ip, () => {
    console.log(`Server is running on http://${ip}:${port}`);
});